package cn.iocoder.yudao.module.trade.verify.vo;

import cn.iocoder.yudao.framework.business.basic.pojo.vo.ShopSimpleVO;
import cn.iocoder.yudao.framework.business.basic.pojo.vo.UserSimpleVO;
import cn.iocoder.yudao.framework.validation.InEnumValue;
import cn.iocoder.yudao.module.api.trade.verify.enums.VerifyBizType;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 核销记录 Response VO")
@Data
public class TradeVerifyRecordRespVO {

    @Schema(description = "唯一编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17785")
    private Long id;

    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17094")
    private Long userId;

    @Schema(description = "用户信息")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private UserSimpleVO user;

    @Schema(description = "店铺编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11934")
    private Long shopId;

    @Schema(description = "店铺信息")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private ShopSimpleVO shop;

    @Schema(description = "业务类型", example = "1")
    @InEnumValue(VerifyBizType.class)
    private Integer bizType;

    @Schema(description = "业务编号", example = "28277")
    private String bizId;

    @Schema(description = "核销码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String code;

    @Schema(description = "核销人员姓名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "核销人员姓名不能为空")
    private String verifierName;

    @Schema(description = "核销人员电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "核销人员电话不能为空")
    private String verifierMobile;

    @Schema(description = "核销说明", requiredMode = Schema.RequiredMode.REQUIRED)
    private String note;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

}